From: Georges Basile Stavracas Neto Date: Wed, 20 May 2020 00:31:45 +0000 (-0300) Subject: appDisplay: Add items in order X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~684^2^2~227 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=6ba29130757f96e298d192ac83c91e89b4e7eda1;p=gnome-shell.git appDisplay: Add items in order Add app icons to the exact page and position they're located instead of always appending. This will be useful later when custom icon positions are in place. For now, it assumes pages are always filled, which is true, but this will also change with custom icon positions. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1271 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 54237fa88..f50d9158c 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -159,12 +159,16 @@ var BaseAppView = GObject.registerClass({ }); // Add new app icons + const { itemsPerPage } = this._grid; addedApps.forEach(icon => { let iconIndex = newApps.indexOf(icon); this._orderedItems.splice(iconIndex, 0, icon); - this._grid.addItem(icon); this._items.set(icon.id, icon); + + const page = Math.floor(iconIndex / itemsPerPage); + const position = iconIndex % itemsPerPage; + this._grid.addItem(icon, page, position); }); this._viewIsReady = true; @@ -445,7 +449,12 @@ class AppDisplay extends BaseAppView { let newIdx = Util.insertSorted(this._orderedItems, item, this._compareItems); this._grid.removeItem(item); - this._grid.addItem(item, -1, newIdx); + + const { itemsPerPage } = this._grid; + const page = Math.floor(newIdx / itemsPerPage); + const position = newIdx % itemsPerPage; + this._grid.addItem(item, page, position); + this.selectApp(item.id); }